 package dominioEntity;
import hbt.PersistentObject;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

import dominioTO.ItemCotizacionTO;

///ItemCotizacion lado Servidor DAO (Persistencia)
@Entity
public class ItemCotizacion extends PersistentObject{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer cantidad=0;
	private float precio=0;
	private Integer stock=0;
	
	@LazyCollection(LazyCollectionOption.FALSE)
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "rodamiento_id")	
	private Rodamiento rodamiento;	

	@LazyCollection(LazyCollectionOption.FALSE)
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "itemListaPrecio_id")	
	private ItemListaPrecios itemListaPrecio;	
	
	
	
	public ItemCotizacion() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	//Getters & Setters
	public Integer getCantidad() {
		return cantidad;
	}

	public void setCantidad(Integer cantidad) {
		this.cantidad = cantidad;
	}

	public float getPrecio() {
		return precio;
	}

	public void setPrecio(float precio) {
		this.precio = precio;
	}

	public Rodamiento getRodamiento() {
		return rodamiento;
	}

	public void setRodamiento(Rodamiento rodamiento) {
		this.rodamiento = rodamiento;
	}

	public ItemListaPrecios getItemListaPrecio() {
		return itemListaPrecio;
	}

	public void setItemListaPrecio(ItemListaPrecios itemListaPrecio) {
		this.itemListaPrecio = itemListaPrecio;
	}


	
	
	/**
	 * @return the stock
	 */
	public Integer getStock() {
		return stock;
	}

	/**
	 * @param stock the stock to set
	 */
	public void setStock(Integer stock) {
		this.stock = stock;
	}
	
	public void agregarStockRodamiento(Integer i)
	{
		this.stock = this.stock+i;		
	}

	@Override
	public String toString() {
		return "ItemCotizacion [cantidad=" + cantidad + ", precio=" + precio
				+ ", stock=" + stock + ", rodamiento=" + rodamiento
				+ ", itemListaPrecio=" + itemListaPrecio + "]";
	}
	
	public ItemCotizacionTO getDTO()
	{
		ItemCotizacionTO aux = new ItemCotizacionTO();
		aux.setCantidad(cantidad);
		aux.setPrecio(precio);		
		aux.setRodamiento(rodamiento.getDTO());
		if(itemListaPrecio!=null)
		{
		aux.setItemListaPrecio(itemListaPrecio.getDTO());
		}
		return aux;
	}
	
	public static ItemCotizacion convertirTO(ItemCotizacionTO dto)
	{
		ItemCotizacion aux = new ItemCotizacion();
		aux.setCantidad(dto.getCantidad());
		aux.setPrecio(dto.getPrecio());
		aux.setRodamiento(Rodamiento.convertirTO(dto.getRodamiento()));
		
		return aux;
	}


	
}
